何謂Bubble Sort(氣泡排序法)
,就是當有一系列相同屬性的資料且未經整理時(假設共有n項),會從第1項開始逐一進行前後項比較,而且每次進行不只一次交換,交換時只會進行前後對調,而在比完第(n-1)項與第n項時會再回頭至第1項重新執行,直到排序完成為止,就先舉一個例子:
預設資料(採用整數資料)[1,29,17,3,22]
第一次交換後: [1,17,3,22,29] >>>原本存放於第二個位置的29因為比後面其他項都還要大,所以就逐步交換至最後
第二次交換後: [1,3,17,22,29] >>>被交換至第二位的17因為比3大,所以交換到第三位,但因為後面的數字都比較大就沒有再進行交換
接下來就是實際的程式碼:
sample_data = [1,29,17,3,22]
def bubble_sort(lst):
#宣告一個方法來執行今天的主軸,Bubble Sort
for x in range(0,len(lst)-1):
booleaner = False
for y in range(0,len(lst)-1):
if lst[y] > lst[y+1]:
tmp = lst[y]
lst[y] = lst[y+1]
lst[y+1] = tmp
booleaner = True
if booleaner == True:
#這條其實只是為了方便進行檢視交換情況而讓系統輸出
print("The " + str(x+1) + " time of exchange: " + str(lst))
else:
continue
print("Final result: " + str(lst))
bubble_sort(sample_data)
執行結果如下:
The 1 time of exchange: [1, 17, 3, 22, 29]
The 2 time of exchange: [1, 3, 17, 22, 29]
Final result: [1, 3, 17, 22, 29]
晚安desu